#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int d[1005],long_cnt[1005];
int main()
{
	int n;
	while(cin>>n)
	{
		memset(long_cnt,0,sizeof long_cnt);
		for(int i=1;i<=n;i++)
		cin>>d[i];
		for(int i=n;i>=1;i--)
		{
			int mxDown=-1;
			for(int j=i+1;j<=n;j++)
				if(d[i]>=d[j])
					mxDown=max(mxDown,long_cnt[j]);
			long_cnt[i]=mxDown+1;
			if(long_cnt[i]==0)//-1+1=0
				long_cnt[i]=1;
		}
		cout<<*max_element(long_cnt+1,long_cnt+n+1)<<endl;
	}
}
